---@meta _

---@class AceDB-2.0 允许快速、简洁且功能丰富的保存变量访问，包括按职业设置等。
---@field db table 数据库
---@field CHAR_ID string
---@field REALM_ID string
---@field CLASS_ID string
---@field FACTION string
---@field REALM string
---@field NAME string
---
---事件：
--- - Ace2_AddonEnabled(table addon)
--- - Ace2_AddonDisabled(table addon)
--- - AceDB20_ResetDB(table addon, string name, string|nil kind)
---
---[文档](https://web.archive.org/web/20080720042148/http://www.wowace.com/wiki/AceDB-2.0)
local AceDB = {}

---注册数据库
---@param globalName string 全局名称
---@param perCharName? string|nil 角色名称
---@param defaultProfile? string|nil 默认配置文件的名称（默认值：“default”）
function AceDB:RegisterDB(globalName, perCharName, defaultProfile) end

---注册默认设置
---@param kind string 类型
---| "char"
---| "class"
---| "realm"
---| "server"
---| "account"
---| "faction"
---| "profile"
---@param defaults table 默认设置
---@param namespace? table|nil 命名空间的名称
function AceDB:RegisterDefaults(kind, defaults, namespace) end

---重置数据库
---@param kind string|nil 类型
---| "char"
---| "class"
---| "realm"
---| "server"
---| "account"
---| "faction"
---| "profile"
function AceDB:ResetDB(kind) end

---设置资料
---@param name string 名称
---@param copyFrom string|nil 复制来源
function AceDB:SetProfile(name, copyFrom) end

---获取资料
---@return string profile 
---@return string profile 
function AceDB:GetProfile() end

---切换活跃
---@param state boolean|nil 状态
function AceDB:ToggleActive(state) end

---是否激活
---@return boolean isActive 是否激活
function AceDB:IsActive() end

---获取数据库命名空间
---@param name string 名称
---@return string namespace 命名空间
function AceDB:AcquireDBNamespace(name) end
